#ifndef APPLICATIONIMP_HPP
#define APPLICATIONIMP_HPP

// This guard ensures that X11 implementation is used only
// on unix platform.
#ifndef MY_USE_UNIX

    #error Unix version of __FILE__ is used without MY_USE_UNIX defined.

#endif

#include <stdint.h>
#include <X11/X.h>
#include <X11/Xlib.h>

#include "Pattern/Uncopyable.hpp"

namespace My
{
    class ApplicationImp : private Uncopyable
    {
    public:
        int32_t Run();

    protected:
        ApplicationImp();
        ~ApplicationImp();

    private:
        Display* m_Display;
        int m_DefaultScreen;
        Window m_RootWindow;
    };

}

#endif // APPLICATIONIMP_HPP
